<?php
class User extends AppModel {
	public $belongsTo = array ('Phong');
	public $hasMany = array('Acrpermission');
	
    public $validate = array(
    	'ho_ten' => array(
			'notEmpty' => array (
				'rule' => 'notEmpty',
				'message' => 'Xin vui lòng điền họ và tên theo mẫu',
			),
			'specialChar' => array (
				'rule'=>'/[^!@#$%&*]/',
				'allowEmpty' => true,
				'message' => 'Họ và tên không hợp lệ'
			),
		),
        'username' => array(
        	'notEmpty' => array (
				'rule' => 'notEmpty',
				'message' => 'Xin vui lòng điền họ và tên truy cập theo mẫu',
			),
			'specialChar' => array (
				'rule'=>'/[^!@#$%&*]/',
				'allowEmpty' => true,
				'message' => 'Tên truy cập không hợp lệ'
			),
			'unique' => array (
				'rule'=>'isUnique',
				'message' => 'Tên truy cập đã tồn tại, hãy chọn tên khác'
			),
        ),
        'password' => array(
        	'notEmpty' => array (
				'rule' => 'notEmpty',
				'message' => 'Xin vui lòng điền mật khẩu theo mẫu',
			)
        ),
        'repassword' => array (
			'notEmpty' => array (
				'rule'=>'notEmpty',
				'message' => 'Xin vui long nhập lại mật khẩu'
			),
			'matchPasswords' => array (
				'rule'=>'matchPasswords',
				'message' => 'Mật khẩu và nhắc lại mật khẩu không giống nhau'
			),
		),
        'ngaysinh' => array(
        	'notEmpty' => array (
				'rule' => 'notEmpty',
				'message' => 'Xin vui lòng điền ngay sinh theo mẫu',
			)
        ),
        'email' => array(
			'notEmpty' => array(
				'rule' => 'notEmpty',
				'message' => 'Xin vui lòng điền email theo mẫu'
			),
			'email' => array(
				'rule' => 'email',
				'message' => 'Email không hợp lệ',
			),
			'emailExisted' => array (
				'rule'=>'emailExisted',
				'message' => 'Email này đã đăng ký trong hệ thống'
			)
		),
    );
	
	function matchPasswords() {
		if ($this->data['User']['password'] != $this->data['User']['repassword']) {
        	return false;
        } else {
        	return true;
        }
    }
	
	function isUnique() {
		if (!isset($this->data['User']['id'])) {
			$existedUser = $this->findByUsername($this->data['User']['username']);
			if (!empty($existedUser)) {
				return false;
			}
		}
		return true;
	}
	
	function emailExisted() {
		if (!isset($this->data['User']['id'])) {
			$existedUser = $this->findByEmail($this->data['User']['email']);
			if (!empty($existedUser)) {
				return false;
			}
		}
		return true;
	}
	public function beforeSave($options = array()) {
	    if (isset($this->data[$this->alias]['password'])) {
	        $this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
	    }
	    return true;
	}
}